package manage;

import login.Order;
import login.User;
import login.customers;
import login.vegetableList;

import java.time.LocalTime;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class customerSys extends Admin{
    /*
    显示并选择商家用户返回id-----------------点餐系统
     */
    public String printSlr()
    {
        u.findSlr();
        System.out.println("请输入进去的店id");
        String tid=sc.next();
        return tid;
    }
    /**
     * 显示所有菜品(按菜品销量从高到低排序输出)
     */
    public void showAllDishesByUser() {
        String tid=printSlr();
        List<vegetableList> list = d.findBySlr(tid);
        Collections.sort(list, (p1, p2) -> p1.getdSum() - p2.getdSum());
        System.out.println(list);
    }
    //
    /**
     * 点餐（输入菜品id和购买数量）
     */
    public void shopDishes(customers user) {
        showAllDishesByUser();
        System.out.println("请输入您要购买的id和数量：按照(id/数量)");
        String str = sc.next();
        String[] info = str.split("/");
        // 判断输入是否符合要求，不符合则要求重新输入
        if (info.length < 2) {
            System.out.println("输入有误，请重新输入：");
            shopDishes(user);
        } else {
            if(user.money>=d.findByID(info[0]).getdPrice())
            {
                LocalTime l = LocalTime.now();
                // String orderID, LocalDateTime utime, Dishes dishes, int ordernum, String uID,
                // Double orderprice,int orderValue
                //id time dish num prise ctm slr status

                //计算总价
                Double tolprice=Integer.parseInt(info[1])*d.findByID(info[0]).getdPrice();


                Order t = new Order(info[0],l,d.findByID(info[0]),d.findByID(info[0]).getdNum(),Integer.parseInt(info[1])*1.0,user,d.findByID(info[0]).getCook(),o.findByID(info[0]).getStatus());
                t.setoNumber(Integer.parseInt(info[1]));




                //选择是否使用优惠券
                //先初始化优惠券变成菜品折扣
                o.findByID(info[0]).setDiscount(user.youhuiquan);

                System.out.println("请选择是否使用"+o.findByID(info[0]).getDiscount()+"元 优惠券 (1.使用  2.不使用)");
                int pd=sc.nextInt();
                if(pd==1){
                    tolprice-=o.findByID(info[0]).getDiscount();
                    o.findByID(info[0]).setTolPrice(tolprice);
                }

                //加入订单
                user.money=user.money-tolprice;

                o.findByID(info[0]).setStatus("已支付");
                o.insert(t);
                System.out.println("订单已生成！！！"  );
                System.out.println((o.findByID(info[0])));
                //添加菜品销量,重写设定函数
                d.findByID(info[0]).setdNum(Integer.parseInt(info[1]));
            }
            else{
                System.out.println("余额不足请充值！");
            }
        }
    }

    /*
    充值系统
     */
    public void addMoney(String uid)
    {
        System.out.println("您的余额为："+u.findByID(uid).getMoney());
        System.out.println("请选择是否充值：0否 1是");
        int f=sc.nextInt();
        if(f>0){
            System.out.println("请输入充值的金额：");
            String str=sc.next();
            Double base=u.findByID(uid).money;
            u.findByID(uid).setMoney(base+Double.parseDouble(str));
            System.out.println("充值成功！");
        }

    }

    //查看订单状态（通过用户查找需要的订单）
    public void showOrder(String uid)
    {
        //打印商品信息
        System.out.println(o.findByCtm(uid));

    }

    //查看该商家的所有评价
    public void showRemark(String uid)
    {
        showOrder(uid);
        System.out.println("请输入您要查看的商家id获取全部评价");
        String Uid=sc.next();
        System.out.println(u.findByID(Uid).getRemarks());

    }

    //给商家评价
    public void setRemark(String uid)
    {
        showOrder(uid);
        System.out.println("请输入您要评价的商家");
        String sid=sc.next();
        System.out.println("请输入您对该商家的评价");
        u.findByID(sid).setRemarks(sc.next());

    }



}
